SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
CREATE PROCEDURE [dbo].[SP_TTULTI_ASTO_Q01]    
/*--------------------------------------------------------*/    
/*---Sistema              : Tesoreria                   --*/    
/*---M©dulo               : Empresa                     --*/    
/*---Programa             : Devuelve el œltimo asiento  --*/    
/*---                       de un libro contable  --*/    
/*---Nombre SP            : SP_TTULTI_ASTO_Q01         --*/    
/*---Desarrollado por     : Reynaldo Menacho Luyo       --*/    
/*---Fecha Creaci©n       : 11/06/1999                  --*/    
/*---Base Datos           : Microsoft Sql Server        --*/    
/*---Versi©n              : 2000                        --*/    
/*---Invoca a SP          :                             --*/    
/*-------------------------------------------------------*/    
    
/*-------------------------------------------------------*/    
/*---Modificado 1 por     : Maribel Julca Rodriguez      --*/    
/*---Fecha Modificaci©n   : 20/04/2005                   --*/     
/*---Detalle Modificaci©n : ingreso de los campos CO_USUA_CREA Y CO_USUA_MODI                           --*/    
/*-------------------------------------------------------*/    
    
/*-------------------------------------------------------*/    
/*---Comentarios                                       --*/    
/*---                                                  --*/    
/*---                                                  --*/    
/*-------------------------------------------------------*/    
    
/*-------------------------------------------------------*/    
/*---Drop Proc SP_TTULTI_ASTO_Q01                     --*/    
/*---Grant all on SP_TTULTI_ASTO_Q01 to public         --*/     
/*--- SP_TTULTI_ASTO_Q01 '01', '001', 'R01', '2003/10/10', '' --*/    
/*-------------------------------------------------------*/    
@ISCO_EMPR TD_VC_002,    
@ISCO_USUA_MODI   TD_VC_008,  
@ISCO_UNID_CONC TD_VC_003,    
@ISCO_TIPO_OPER TD_VC_003,    
@IDFE_OPER TD_DT_001,    
@ISNU_ASTO TD_VC_010 OUTPUT
As
Declare    
  @VNNU_ANNO       TD_IN_001,    
  @VNNU_MESE       TD_IN_001,    
  @VNNU_ULTI_ASTO  TD_IN_001,    
  @VSCO_OPRC_CNTB  TD_VC_003,    
  @VSNU_CORR_VENT  TD_VC_008    
    
  Begin Tran TTULTI_ASTO_I01    
         Select @VNNU_ANNO = Datepart (Year,@IDFE_OPER )    
         Select @VNNU_MESE = Datepart (Month,@IDFE_OPER )    
           
         Select   @VSCO_OPRC_CNTB = CO_OPRC_CNTB    
         From     TDTIPO_OPER     
         Where    CO_EMPR = @ISCO_EMPR    
            And CO_TIPO_OPER = @ISCO_TIPO_OPER    
         Group By CO_OPRC_CNTB     
    
  Select @VNNU_ULTI_ASTO = ISNULL(NU_ULTI_ASTO, 0) + 1    
         From   TCFECH_PROC    
         Where  CO_EMPR = @ISCO_EMPR    
          And NU_CNTB_EMPR = 1    
          And NU_ANNO = @VNNU_ANNO    
          And NU_MESE = @VNNU_MESE    
          And CO_UNID_CNTB = @ISCO_UNID_CONC    
          And CO_OPRC_CNTB = @VSCO_OPRC_CNTB    
    
    
         Select @VSNU_CORR_VENT = @VSCO_OPRC_CNTB + Replicate('0',5-datalength(Convert(Varchar(10),@VNNU_ULTI_ASTO))) + 
Convert(Varchar(10),@VNNU_ULTI_ASTO)    
         SELECT @ISNU_ASTO = @VSNU_CORR_VENT    
    
         Update TCFECH_PROC     
  Set  NU_ULTI_ASTO = @VNNU_ULTI_ASTO,  
  CO_USUA_MODI = @ISCO_USUA_MODI,  
  FE_USUA_MODI = GETDATE()    
         Where  CO_EMPR = @ISCO_EMPR    
          And NU_CNTB_EMPR = 1    
          And NU_ANNO = @VNNU_ANNO    
          And NU_MESE = @VNNU_MESE    
          And CO_UNID_CNTB = @ISCO_UNID_CONC    
          And CO_OPRC_CNTB = @VSCO_OPRC_CNTB    
    
  If @@error <> 0    
            Begin    
          Rollback tran    
         Return    
            End    
  COMMIT TRAN TTULTI_ASTO_I01    
    
Select @ISNU_ASTO    
    
Return    
    
/*------------------------------ FIN ------------------------------*/


GO
